home *** CD-ROM | disk | FTP | other *** search
/ PC Zone 86 / PC Zone #086.7z / Dppcz0200.mdf / Editor.ial / Messiah / messiahpatch.exe / data1.cab / Program_Executable_Files / messiahscripts / bobActions.hxx < prev    next >
Text File  |  1999-11-28  |  42KB  |  1,809 lines

  1. //Bob turning
  2. #define BobMaxTurnSpeed        72
  3. #define BobMaxTurnSpeedAir    48
  4.  
  5. //Bob movespeed while in air
  6. #define BobMaxRunSpeedFwdAir        -15
  7. #define BobMaxRunSpeedBwdAir        10
  8. #define BobMaxRunSpeedSideAir        12
  9. #define BobMaxRunSpeedSideAirNeg    -12
  10.  
  11. #define BobMaxWalkSpeedFwdAir        -5
  12. #define BobMaxWalkSpeedBwdAir        3
  13. #define BobMaxWalkSpeedSideAir        4
  14. #define BobMaxWalkSpeedSideAirNeg    -4
  15.  
  16. #define BobAccAir                    2.0
  17. #define BobDccAir                    0.8
  18. #define BobAccAirSide                1.5
  19. #define BobDccAirBackFlip            0.95    //Friction
  20.  
  21. #define    BobHangMoveIn                -10
  22.  
  23. //Bob movespeed while on ground
  24. #define BobMaxRunSpeedFwd            -12
  25. #define BobNegMaxRunSpeedFwd        12
  26. #define    BobDiagRunSpeed                8.4852
  27. #define    BobNegDiagRunSpeed            -8.4852
  28.  
  29. #define BobMaxRunSpeedBwd            8        //9
  30. #define BobDiagRunSpeedBwd            5.6568    //6.3639
  31. #define BobNegDiagRunSpeedBwd        -5.6568    //-6.3639
  32.  
  33.  
  34. #define    BobSideWalkSpeed            4
  35. #define    BobDiagWalkSpeed            2.828
  36. #define    BobNegSideWalkSpeed            -4
  37. #define    BobNegDiagWalkSpeed            -2.828
  38.  
  39. //Bob Jumping and falling
  40. #define BobMinHoldJumpAction        3
  41. #define BobFlapPressThreshold        15
  42.  
  43. #define BobMaxFall                    -1000    //Fall before he breaks his legs.
  44. #define    DamageBobFall                500        //Maximum, depends on altitude you fall
  45.  
  46. SubRoutine(Sub_ForceExecuteAnim)
  47. {
  48.         state(_or,StateExecuteAnim);
  49. }
  50.  
  51. action(BobSlamLink)
  52. {
  53.         file("pc\actors\MultiAnm\xxx\BSlmBob.ske",100,off);
  54.         break(off);
  55.         ActionSubRoutine(Sub_ForceExecuteAnim);
  56.         connections(BobIdle);
  57. }
  58.  
  59. //        file("pc\actors\bob\xxx\brun90LS.ske",100,on,100);    //Possibility,Repeat[,Speed]
  60. //        nrintframes(4);                //Interpolation frames
  61. //        intforloop(Default=off);    //Interpolate for looping animation
  62. //        break(Default=off);            //Break animation
  63. //        Gravity(Default=on);
  64. //        Ydeltafromzeroframe(default=on)    //Off=use y-pos from rootbone, not from ground (use for jumping and when anim is fucked up)
  65.  
  66.  
  67. //    DRAGGING ACTIONS
  68. //
  69.  
  70.  
  71. action(DragByFeetStomachLink)
  72. {
  73.         file("pc\actors\MultiAnm\xxx\BDMBBStM.ske",100,off,100,_AIclassmale);
  74.         file("pc\actors\MultiAnm\xxx\BDFBBStM.ske",100,off,100,_AIclassfemale);
  75.         file("pc\actors\MultiAnm\xxx\BDMBBStM.ske",100,off);
  76.         break(off);
  77.         connections(DragByFeetStomachLoop);
  78. }
  79.  
  80. action(DragByFeetStomachLoop)
  81. {
  82.         file("pc\actors\MultiAnm\xxx\BDMBBLpM.ske",100,on,100,_AIclassmale);
  83.         file("pc\actors\MultiAnm\xxx\BDFBBLpM.ske",100,on,100,_AIclassfemale);
  84.         file("pc\actors\MultiAnm\xxx\BDMBBLpM.ske",100,on);
  85.         trigger(_DIRactionhold);
  86.         break(on);
  87.         connections(DragByFeetStomachLoop,DragByFeetStomachStop);
  88. }
  89.  
  90. action(DragByFeetStomachStop)
  91. {
  92.         file("pc\actors\MultiAnm\xxx\BDMBBEnM.ske",100,off,100,_AIclassmale);
  93.         file("pc\actors\MultiAnm\xxx\BDFBBEnM.ske",100,off,100,_AIclassfemale);
  94.         file("pc\actors\MultiAnm\xxx\BDMBBEnM.ske",100,off);
  95.         break(off);
  96.         connections(DragByFeetStomachStop);
  97. }
  98.  
  99.  
  100. action(DragByFeetLink)
  101. {
  102.         file("pc\actors\MultiAnm\xxx\BDMBFStM.ske",100,off,100,_AIclassmale);
  103.         file("pc\actors\MultiAnm\xxx\BDFBFStM.ske",100,off,100,_AIclassfemale);
  104.         file("pc\actors\MultiAnm\xxx\BDMBFStM.ske",100,off);
  105.         break(off);
  106.         connections(DragByFeetLoop);
  107. }
  108.  
  109. action(DragByFeetLoop)
  110. {
  111.         file("pc\actors\MultiAnm\xxx\BDMBFLpM.ske",100,on,100,_AIclassmale);
  112.         file("pc\actors\MultiAnm\xxx\BDFBFLpM.ske",100,on,100,_AIclassfemale);
  113.         file("pc\actors\MultiAnm\xxx\BDMBFLpM.ske",100,on);
  114.         trigger(_DIRactionhold);
  115.         break(on);
  116.         connections(DragByFeetLoop,DragByFeetStop);
  117. }
  118.  
  119. action(DragByFeetStop)
  120. {
  121.         file("pc\actors\MultiAnm\xxx\BDMBFEnM.ske",100,off,100,_AIclassmale);
  122.         file("pc\actors\MultiAnm\xxx\BDFBFEnM.ske",100,off,100,_AIclassfemale);
  123.         file("pc\actors\MultiAnm\xxx\BDMBFEnM.ske",100,off);
  124.         break(off);
  125.         connections(DragByFeetStop);
  126. }
  127.  
  128. action(DragByHeadLink)
  129. {
  130.         file("pc\actors\MultiAnm\xxx\BDMHStrM.ske",100,off,100,_AIclassmale);
  131.         file("pc\actors\MultiAnm\xxx\BDFHStrM.ske",100,off,100,_AIclassfemale);
  132.         file("pc\actors\MultiAnm\xxx\BDMHStrM.ske",100,off);
  133.         break(off);
  134.         connections(DragByHeadLoop);
  135. }
  136.  
  137. action(DragByHeadLoop)
  138. {
  139.         file("pc\actors\MultiAnm\xxx\BDMHWkBM.ske",100,on,100,_AIclassmale);
  140.         file("pc\actors\MultiAnm\xxx\BDFHWkBM.ske",100,on,100,_AIclassfemale);
  141.         file("pc\actors\MultiAnm\xxx\BDMHWkBM.ske",100,on);
  142.         trigger(_DIRactionhold);
  143.         break(on);
  144.         connections(DragByHeadLoop,DragByHeadStop);
  145. }
  146.  
  147. action(DragByHeadStop)
  148. {
  149.         file("pc\actors\MultiAnm\xxx\BDMHEndM.ske",100,off,100,_AIclassmale);
  150.         file("pc\actors\MultiAnm\xxx\BDFHEndM.ske",100,off,100,_AIclassfemale);
  151.         file("pc\actors\MultiAnm\xxx\BDMHEndM.ske",100,off);
  152.         break(off);
  153.         connections(DragByHeadStop);
  154. }
  155.  
  156. action(DragByHeadStomachLink)
  157. {
  158.         file("pc\actors\MultiAnm\xxx\BDMHFStM.ske",100,off,100,_AIclassmale);
  159.         file("pc\actors\MultiAnm\xxx\BDFHFStM.ske",100,off,100,_AIclassfemale);
  160.         file("pc\actors\MultiAnm\xxx\BDMHFStM.ske",100,off);
  161.         break(off);
  162.         connections(DragByHeadStomachLoop);
  163. }
  164.  
  165. action(DragByHeadStomachLoop)
  166. {
  167.         file("pc\actors\MultiAnm\xxx\BDMHFLpM.ske",100,on,100,_AIclassmale);
  168.         file("pc\actors\MultiAnm\xxx\BDFHFLpM.ske",100,on,100,_AIclassfemale);
  169.         file("pc\actors\MultiAnm\xxx\BDMHFLpM.ske",100,on);
  170.         trigger(_DIRactionhold);
  171.         break(on);
  172.         connections(DragByHeadStomachLoop,DragByHeadStomachStop);
  173. }
  174.  
  175. action(DragByHeadStomachStop)
  176. {
  177.         file("pc\actors\MultiAnm\xxx\BDMHFEnM.ske",100,off,100,_AIclassmale);
  178.         file("pc\actors\MultiAnm\xxx\BDFHFEnM.ske",100,off,100,_AIclassfemale);
  179.         file("pc\actors\MultiAnm\xxx\BDMHFEnM.ske",100,off);
  180.         break(off);
  181.         connections(DragByHeadStomachStop);
  182. }
  183.  
  184. Action(BobDragFeet)
  185. {
  186.         file("pc\actors\MultiAnm\xxx\BDMHStrB.ske",100,off,100);
  187.  
  188.         flag(_SXAAonlydeadpeople|_SXAAalignmovingslave|_SXAAdisablecollision);
  189.  
  190.         //AlignXYZ(-2.605,-89.0424,0);
  191.         AlignXYZ(-2.605,0,89.0424);
  192.  
  193.         TargetAngle(0);
  194.         AttackHeight(40);
  195.         DistanceSlack(150);
  196.         AlignSlack(180);    
  197.  
  198.         AlignStartFrame(0);
  199.         AlignNrFrames(1);
  200.  
  201.         AttachActionStartAtFrame(0);
  202.         AttachAction(DragByFeetLink);
  203.  
  204.         trigger(_allDIR);
  205.         break(off);
  206.         nrintframes(0);
  207.         connections(BobDragHeadLoop);
  208. }
  209.  
  210. Action(BobDragFeetStomach)
  211. {
  212.         file("pc\actors\MultiAnm\xxx\BDMHStrB.ske",100,off,100);
  213.  
  214.         flag(_SXAAonlydeadpeople|_SXAAalignmovingslave|_SXAAdisablecollision);
  215.  
  216.         //AlignXYZ(-2.605,-89.0424,0);
  217.         AlignXYZ(-2.605,0,89.0424);
  218.  
  219.         TargetAngle(0);
  220.         AttackHeight(40);
  221.         DistanceSlack(150);
  222.         AlignSlack(180);    
  223.  
  224.         AlignStartFrame(0);
  225.         AlignNrFrames(1);
  226.  
  227.         AttachActionStartAtFrame(0);
  228.         AttachAction(DragByFeetStomachLink);
  229.  
  230.         trigger(_allDIR);
  231.         break(off);
  232.         nrintframes(0);
  233.         connections(BobDragHeadLoop);
  234. }
  235.  
  236. Action(BobDragHead)
  237. {
  238.         file("pc\actors\MultiAnm\xxx\BDMHStrB.ske",100,off,100);
  239.  
  240.         flag(_SXAAalignmovingslave|_SXAAonlydeadpeople|_SXAAdisablecollision);
  241.  
  242.         //AlignXYZ(-2.605,-89.0424,0);
  243.         AlignXYZ(-2.605,0,89.0424);
  244.  
  245.         TargetAngle(0);
  246.         AttackHeight(40);
  247.         DistanceSlack(150);
  248.         AlignSlack(180);    
  249.  
  250.         AlignStartFrame(0);
  251.         AlignNrFrames(1);
  252.  
  253.         AttachActionStartAtFrame(0);
  254.         AttachAction(DragByHeadLink);
  255.  
  256.         trigger(_allDIR);
  257.         break(off);
  258.         nrintframes(0);
  259.         connections(BobDragHeadLoop);
  260. }
  261.  
  262. Action(BobDragHeadStomach)
  263. {
  264.         file("pc\actors\MultiAnm\xxx\BDMHStrB.ske",100,off,100);
  265.  
  266.         flag(_SXAAonlydeadpeople|_SXAAalignmovingslave|_SXAAdisablecollision);
  267.  
  268.         //AlignXYZ(-2.605,-89.0424,0);
  269.         AlignXYZ(-2.605,0,89.0424);
  270.  
  271.         TargetAngle(0);
  272.         AttackHeight(40);
  273.         DistanceSlack(150);
  274.         AlignSlack(180);    
  275.  
  276.         AlignStartFrame(0);
  277.         AlignNrFrames(1);
  278.  
  279.         AttachActionStartAtFrame(0);
  280.         AttachAction(DragByHeadStomachLink);
  281.  
  282.         trigger(_allDIR);
  283.         break(off);
  284.         nrintframes(0);
  285.         connections(BobDragHeadLoop);
  286. }
  287.  
  288. Action(BobStomachRollLeft)
  289. {
  290.         file("pc\actors\Bob\xxx\BRolBdy.ske",100,off);
  291.  
  292.         flag(_SXAAAlignTransToY|_SXAAonlydeadpeople|_SXAAdisablecollision|_SXAAdisablerotation);
  293.  
  294.         AttackHeight(40);
  295.         AlignDistance(100);
  296.         DistanceSlack(150);
  297.         AlignSlack(180);    
  298.  
  299.         AttachActionStartAtFrame(14);
  300.         AttachAction(GENStomachRollLeft);
  301.  
  302.         ActionSubRoutine(Sub_BobRollSFX);
  303.  
  304.         trigger(_allDIR);
  305.         break(off);
  306.         nrintframes(0);
  307.         connections(BobIdle);
  308. }
  309.  
  310. Action(BobStomachRollRight)
  311. {
  312.         file("pc\actors\Bob\xxx\BRolBdy.ske",100,off);
  313.  
  314.         flag(_SXAAAlignTransToY|_SXAAonlydeadpeople|_SXAAdisablecollision|_SXAAdisablerotation);
  315.  
  316.         AttackHeight(40);
  317.         AlignDistance(100);
  318.         DistanceSlack(150);
  319.         AlignSlack(180);    
  320.  
  321.         AttachActionStartAtFrame(14);
  322.         AttachAction(GENStomachRollRight);
  323.  
  324.         ActionSubRoutine(Sub_BobRollSFX);
  325.  
  326.         trigger(_allDIR);
  327.         break(off);
  328.         nrintframes(0);
  329.         connections(BobIdle);
  330. }
  331.  
  332. Action(BobBackRollRight)
  333. {
  334.         file("pc\actors\Bob\xxx\BRolBdy.ske",100,off);
  335.  
  336.         flag(_SXAAAlignTransToY|_SXAAonlydeadpeople|_SXAAdisablecollision|_SXAAdisablerotation);
  337.  
  338.         AttackHeight(40);
  339.         AlignDistance(100);
  340.         DistanceSlack(150);
  341.         AlignSlack(180);    
  342.  
  343.         ActionSubRoutine(Sub_BobRollSFX);
  344.  
  345.         AttachActionStartAtFrame(14);
  346.         AttachAction(GENBackRollRight);
  347.  
  348.         trigger(_allDIR);
  349.         break(off);
  350.         nrintframes(0);
  351.         connections(BobIdle);
  352. }
  353.  
  354. Action(BobBackRollLeft)
  355. {
  356.         file("pc\actors\Bob\xxx\BRolBdy.ske",100,off);
  357.  
  358.         flag(_SXAAAlignTransToY|_SXAAonlydeadpeople|_SXAAdisablecollision|_SXAAdisablerotation);
  359.  
  360.         AttackHeight(40);
  361.         AlignDistance(100);
  362.         DistanceSlack(150);
  363.         AlignSlack(180);    
  364.  
  365.         AttachActionStartAtFrame(14);
  366.         AttachAction(GENBackRollLeft);
  367.  
  368.         ActionSubRoutine(Sub_BobRollSFX);
  369.  
  370.         trigger(_allDIR);
  371.         break(off);
  372.         nrintframes(0);
  373.         connections(BobIdle);
  374. }
  375.  
  376. Action(BobDragHeadLoop)
  377. {
  378.         file("pc\actors\MultiAnm\xxx\BDMHWkBB.ske",100,on);
  379.         trigger(_DIRactionhold);
  380.         break(on);
  381.         nrintframes(0);
  382.         connections(BobDragHeadLoop,BobIdle);
  383. }
  384.  
  385.  
  386. //    DRAGGING END
  387.  
  388.  
  389. Action(BobDrown)
  390. {
  391.         file("pc\actors\Bob\xxx\BBrnIdle.ske",100,on);        //drowning
  392.         trigger(_allDIR);
  393.         AIClass(_AIClassBobSkeleton);
  394.         break(off);
  395.         nomove(true);
  396.         gravity(off);
  397.         collision(off);
  398.         nrintframes(3);
  399.         connections(BobDrown);
  400. }
  401.  
  402.  
  403. //    LEDGE ANIMATIONS
  404. //
  405.  
  406. Action(BobLedgeIdle)
  407. {
  408.         file("pc\actors\Bob\xxx\bidle1g.xxx",20,on,80);            //look side to side
  409.         file("pc\actors\Bob\xxx\bobnidl2.ske",80,on);
  410.         file("pc\actors\Bob\xxx\bobnidl1.ske",100,on);
  411.         trigger(_allDIR);
  412.         nrintframes(5);
  413.         intforloop(on);
  414.         break(on);
  415.         connections(BobLedgeLeft,BobLedgeRight,BobLedgeIdle);
  416. }
  417.  
  418. Action(BobLedgeLeft)
  419. {
  420.         file("pc\actors\Bob\xxx\BLdgWLft.ske",100,on);    //Bob walk left on ledge
  421.         nrintframes(4);
  422.         trigger(_DIRleft);
  423.         break(on);
  424.         connections(BobLedgeTurnLeftRight,BobLedgeLeft,BobLedgeIdle);
  425. }
  426.  
  427. Action(BobLedgeRight)
  428. {
  429.         file("pc\actors\Bob\xxx\BLdgWRgt.ske",100,on);    //Bob walk right on ledge
  430.         trigger(_DIRright);
  431.         nrintframes(4);
  432.         break(on);
  433.         connections(BobLedgeTurnRightLeft,BobLedgeRight,BobLedgeIdle);
  434. }
  435.  
  436. Action(BobLedgeTurnLeftRight)
  437. {
  438.         file("pc\actors\Bob\xxx\BLdg-L2R.ske",100,off);    //Bob on ledge Turn from Left to Right
  439.         trigger(_DIRright);
  440.         nrintframes(4);
  441.         break(off);
  442.         connections(BobLedgeRight);
  443. }
  444.  
  445. Action(BobLedgeTurnRightLeft)
  446. {
  447.         file("pc\actors\Bob\xxx\BLdg-R2L.ske",100,off);    //Bob on ledge Turn from Right to Left
  448.         trigger(_DIRleft);
  449.         nrintframes(4);
  450.         break(off);
  451.         connections(BobLedgeLeft);
  452. }
  453.  
  454. //    other anims
  455. //
  456.  
  457. Action(BobTaunt)
  458. {
  459.         file("pc\actors\Bob\xxx\BTaunt1.ske",100,on);
  460.  
  461.         trigger(_allDIR);
  462.         nrintframes(5);
  463.         intforloop(off);
  464.         break(off);
  465.         connections(bobidle);
  466. }
  467.  
  468. action(BobBangHead)
  469. {
  470.         //file("pc\actors\Bob\xxx\bhithed1.ske",50,off);
  471.         //file("pc\actors\Bob\xxx\bhithed2.ske",100,off);
  472.         file("pc\actors\Bob\xxx\BHBoink1.ske",50,off);
  473.         file("pc\actors\Bob\xxx\BHBoink2.ske",100,off);
  474.         trigger(_allDIR);
  475.         break(off);
  476.         nrintframes(8);
  477.         connections(BobIdle);
  478. }
  479.  
  480. action(BobConsole)
  481. {
  482. //        file("pc\actors\Bob\xxx\Bkbdsl1.ske",50,off);
  483. //        file("pc\actors\Bob\xxx\Bkbdsl2.ske",100,off);
  484. //        file("pc\actors\Bob\xxx\Bkbdsl3.ske",100,off);
  485.         file("pc\actors\Bob\xxx\Bkbdsl4.ske",100,off);
  486.         trigger(_allDIR);
  487.         AIClass(_AIClassBobSkeleton);
  488.         break(off);
  489.         nrintframes(6);
  490.         connections(BobIdle);
  491. }
  492.  
  493. action(BobElectricShock0)
  494. {
  495.         file("pc\actors\bob\xxx\BElectro.ske",100,off);
  496.         trigger(_allDIR);
  497.         AIClass(_AIClassBobSkeleton);
  498.         break(off);
  499.         nrintframes(4);
  500.         intforloop(off);
  501.         nomove(true);
  502.         connections(BobElectricShock1);
  503.         collision(on);
  504.         gravity(off);
  505. }
  506.  
  507. action(BobElectricShock1)
  508. {
  509.         file("pc\actors\bob\xxx\BElectro.ske",100,off);
  510.         trigger(_allDIR);
  511.         AIClass(_AIClassBobSkeleton);
  512.         //nomove(true);
  513.         break(off);
  514.         gravity(off);
  515.         connections(BobElectricShock1);
  516. }
  517.  
  518. Action(BobRunJumpPosses)
  519. {
  520.     file("pc\actors\Bob\xxx\BJmpBPos.ske",100,on,100);
  521.     trigger(_AllDIR);
  522.     nrintframes(3);
  523.     gravity(off);
  524.     ydeltafromzeroframe(off);
  525.     break(off);
  526.     connections(bobidle);
  527. }
  528.  
  529. Action(BobJumpPosses)
  530. {
  531.     file("pc\actors\Bob\xxx\BJmpBPs2.ske",100,on,100);
  532.     trigger(_AllDIR);
  533.     nrintframes(3);
  534.     gravity(off);
  535.     ydeltafromzeroframe(off);
  536.     break(off);
  537.     connections(bobidle);
  538. }
  539.  
  540.  
  541. Action(bobshoot)
  542. {
  543.         file("pc\actors\Bob\xxx\bshtfing.ske",100,on,140);
  544.  
  545.         trigger(_DIRshoot);
  546.         nrintframes(5);
  547.         //nomove(true);
  548.         intforloop(off);
  549.         break(off);
  550.         connections(bobidle);
  551. }
  552.  
  553.  
  554. //            THROWN ANIMATIONS
  555. //
  556. action(BobThrownBack)
  557. {
  558.         file("pc\actors\Bob\xxx\BthrnbkA.ske",100,off);    //Backwards hold frame
  559.         trigger(_alldir);
  560.         break(on);
  561.         collision(on);
  562.         nrintframes(4);
  563.  
  564.         ActionSubRoutine(Sub_RandomKickedSFX);
  565.  
  566.         connections(BobThrownBackLand);
  567. }
  568.  
  569. action(BobThrownBackHit)
  570. {
  571.         file("pc\actors\Bob\xxx\BthrnbkA.ske",100,off);    //Backwards hold frame
  572.         trigger(_alldir);
  573.         break(off);
  574.         move(0,0,5);
  575.         collision(on);
  576.         nrintframes(4);
  577.         connections(BobThrownBackLand);
  578. }
  579.  
  580. action(BobDieOnBack)
  581. {
  582.         file("pc\actors\Bob\xxx\BthrnbkD.ske",100,off);    //Backwards, land on back
  583.         trigger(_allDIR);
  584.         break(off);
  585.         collision(on);
  586.         nrintframes(4);
  587.         connections(BobDieOnBack);
  588. }
  589.  
  590. action(BobThrownBackLand)
  591. {
  592.         file("pc\actors\Bob\xxx\BthrnbkB.ske",100,off);    //Backwards, land on back
  593.         //file("pc\actors\Bob\xxx\BthrbkB2.ske",100,off);    //Backwards, land on back
  594.         trigger(_allDIR);
  595.         break(off);
  596.         collision(on);
  597.         nrintframes(4);
  598.         connections(BobGetUpFromBack,BobDieOnBack);
  599. }
  600.  
  601.  
  602.  
  603. action(BobThrownForward)
  604. {
  605.         file("pc\actors\Bob\xxx\BthrnFwA.ske",100,off);    //Forward hold frame
  606.         trigger(_alldir);
  607.         break(on);
  608.         collision(on);
  609.         nrintframes(4);
  610.         connections(BobThrownForwardLand);
  611. }
  612.  
  613. action(BobThrownForwardLand)
  614. {
  615.         file("pc\actors\Bob\xxx\BthrnFwB.ske",100,off);        //forward, land face down, and get up (gabe)
  616.         trigger(_allDIR);
  617.         break(off);
  618.         collision(on);
  619.         nrintframes(4);
  620.         connections(BobGetUpFromFrontFaceDown,BobThrownForwardLand);
  621. }
  622.  
  623. action(BobThrownForwardLandAttached)
  624. {
  625.         file("pc\actors\Bob\xxx\BthrnFwB.ske",100,off);        //forward, land face down, and get up (gabe)
  626.         trigger(_allDIR);
  627.         break(off);
  628.         collision(on);
  629.         nrintframes(4);
  630.         move(0,0,-5);
  631.         ActionSubRoutine(Sub_RandomKickedSFX);
  632.         connections(BobGetUpFromFrontFaceDown,BobThrownForwardLandAttached);
  633. }
  634.  
  635. action(BobGetUpFromBack)
  636. {
  637.         file("pc\actors\bob\xxx\BthrnbkC.ske",100,off);
  638.  
  639.         //file("pc\actors\bob\xxx\bStndUBF.ske",50,off);
  640.         //file("pc\actors\bob\xxx\bStnupB2.ske",100,off);
  641.         trigger(_DIRalive);
  642.         break(off);
  643.         collision(on);
  644.         nrintframes(4);
  645.         connections(BobIdle);
  646. }
  647.  
  648. action(BobGetUpFromFrontFaceDown)
  649. {
  650.         file("pc\actors\Bob\xxx\bStrl2.ske",100,off);
  651.         trigger(_DIRalive);
  652.         break(off);
  653.         collision(on);
  654.         nrintframes(0);
  655.         move(0,0,-2);
  656.         connections(BobIdle);
  657. }
  658.  
  659.  
  660.  
  661. //**************** Idle + variations
  662. Action(bobidle)
  663. {
  664.         //file("pc\actors\Bob\xxx\byawn.ske",10,on);
  665.  
  666.         //file("pc\actors\Bob\xxx\BTaunt1.ske",2,on);
  667.         file("pc\actors\Bob\xxx\bidle1g.xxx",25,on,80);            //look side to side
  668.         file("pc\actors\Bob\xxx\bobnidl2.ske",80,on);
  669.         file("pc\actors\Bob\xxx\bobnidl1.ske",100,on);
  670.  
  671. //        file("pc\actors\Bob\xxx\bidle0g.xxx",66,on);
  672. //        file("pc\actors\Bob\xxx\bidl0n.ske",100,on);
  673.         //file("pc\actors\Bob\xxx\BBrnIdle.ske",100,on);        //burn idle test
  674.         trigger(_allDIR);
  675.         AIClass(_AIClassBobSkeleton);
  676.         nrintframes(5);
  677.         //nomove(true);
  678.         intforloop(on);
  679.         break(on);
  680.         connections(DwarfClawAttack,bobshoot,BobSpreadOut,BobTurnLeft,BobTurnRight,bobidle);
  681. }
  682. action(BobSpreadOut)    //Lead directly to next animation
  683. {
  684.         trigger(_DIRMove);
  685.         AIClass(_AIClassBobSkeleton);
  686.         nrintframes(-1);
  687.         connections(DwarfClawAttack,bobshoot,BobSlowDiagBL,BobSlowDiagBR,BobSlowDiagFL,BobSlowDiagFR,BobslowR,BobslowL,BobWalkBack,bobwalk,BobFastDiagBL,BobFastDiagBR,BobFastDiagFL,BobFastDiagFR,BobFastR,BobFastL,bobrun,bobrunback);
  688.         //connections(BobSlowDiagBL,BobSlowDiagBR,BobFastDiagBL,BobFastDiagBR,BobSlowDiagFL,BobSlowDiagFR,BobFastDiagFL,BobFastDiagFR,BobslowR,BobFastR,BobslowL,BobFastL,bobrun,bobrunback,BobWalkBack,bobwalk);
  689. }
  690.  
  691. action(BobIdleLongTime)
  692. {
  693. //MISSING: Extra idle funny animations
  694.         file("pc\actors\Bob\xxx\byawn.ske",33,on);
  695.         file("pc\actors\Bob\xxx\bcel2.xxx",100,on);
  696.         trigger(_DIRNotEndOfAnim);
  697.         AIClass(_AIClassBobSkeleton);
  698.         nrintframes(5);
  699.         intforloop(on);
  700.         break(on);
  701.         connections(BobSpreadOut,BobTurnLeft,BobTurnRight,BobIdleLongTime,BobIdle);
  702. }
  703.  
  704. action(BobDanceCool)
  705. {
  706.         file("pc\actors\Bob\xxx\bcel2.xxx",100,on);
  707.         trigger(_DIRNotEndOfAnim);
  708.         nrintframes(5);
  709.         intforloop(on);
  710.         break(on);
  711.         connections(BobDanceCool,BobIdle);
  712. }
  713.  
  714. Action(bobidleHitWall)            //After hitting into wall
  715. {
  716. //        file("pc\actors\Bob\xxx\bidle1g.xxx",33,on);
  717.         file("pc\actors\Bob\xxx\bidle0g.xxx",66,on);
  718.         file("pc\actors\Bob\xxx\bidl0n.ske",100,on);
  719.         trigger(_allDIR);
  720.         AIClass(_AIClassBobSkeleton);
  721.         nrintframes(5);
  722.         intforloop(on);
  723.         nomove(true);
  724.         break(on);
  725.         connections(BobHitWallSpreadOut);
  726. }
  727.  
  728. action(BobHitWallSpreadOut)    //Lead directly to next animation
  729. {
  730.         trigger(_allDIR);
  731.         AIClass(_AIClassBobSkeleton);
  732.         nrintframes(-1);
  733.         connections(BobHitWallTurnLeft,BobHitWallTurnRight,BobIdleHitWall);
  734. }
  735.  
  736. Action(bobidleHitWallFront)    //Hitting wall face first, special animation.
  737. {
  738. //MISSING Animation (right now he just mainly looks over his shoulders
  739. //        file("pc\actors\Bob\xxx\bidle1g.xxx",33,on);
  740. //        file("pc\actors\Bob\xxx\bidle0g.xxx",66,on);
  741.         file("pc\actors\Bob\xxx\bidl0n.ske",100,on);
  742.         trigger(_allDIR);
  743.         AIClass(_AIClassBobSkeleton);
  744.         nrintframes(5);
  745.         intforloop(on);
  746.         nomove(true);
  747.         break(on);
  748.         connections(BobHitWallTurnLeft,BobHitWallTurnRight,bobidleHitWallFront);
  749. }
  750.  
  751.  
  752. Action(BobTurnLeft)
  753. {
  754.         file("pc\actors\Bob\xxx\btrnlft.ske",100,on);
  755.         trigger(_DIRleft);
  756.         break(on);
  757.         nrintframes(6);
  758.         connections(BobSpreadOut,BobTurnLeft,BobTurnRight,BobIdle);
  759. }
  760.  
  761. Action(BobTurnRight)
  762. {
  763.         file("pc\actors\Bob\xxx\Btrnrt.ske",100,on);
  764.         trigger(_DIRright);
  765.         break(on);
  766.         nrintframes(6);
  767.         connections(BobSpreadOut,BobTurnLeft,BobTurnRight,BobIdle);
  768. }
  769.  
  770. Action(BobHitWallTurnLeft)
  771. {
  772.         file("pc\actors\Bob\xxx\btrnlft.ske",100,on);
  773.         trigger(_DIRleft);
  774.         break(on);
  775.         nrintframes(6);
  776.         connections(BobHitWallSpreadOut);
  777. }
  778.  
  779. Action(BobHitWallTurnRight)
  780. {
  781.         file("pc\actors\Bob\xxx\Btrnrt.ske",100,on);
  782.         trigger(_DIRright);
  783.         break(on);
  784.         nrintframes(6);
  785.         connections(BobHitWallSpreadOut);
  786. }
  787.  
  788.  
  789.  
  790.  
  791. /* *************   Standard moves ******************* */
  792. Action(bobrun)
  793. {
  794.         //file("pc\actors\bob\xxx\brunNoFr.ske",100,on,100);
  795.         //file("pc\actors\Bob\xxx\BNuRunF2.ske",100,on);
  796.         //file("pc\actors\Bob\xxx\BNuRunF3.ske",100,on);
  797.         file("pc\actors\Bob\xxx\BNuRn4F.ske",100,on);
  798.         nrintframes(4);
  799.         trigger(_DIRforward);
  800.         break(on);
  801.         //offset(1);
  802.         offset(11);
  803.         move(0,0,BobMaxRunSpeedFwd);
  804.         soundlevel(100);
  805.         //connections(BobSpreadOut,BobIdle);
  806.         connections(BobSpreadOut,BobTouchDown);        //touchdown used as a placeholder for end of run anim
  807. }
  808.  
  809. Action(bobfastR)
  810. {
  811.         //file("pc\actors\bob\xxx\brunNoFr.ske",100,on,100);
  812.         file("pc\actors\bob\xxx\BNuRn4R.ske",100,on,100);
  813.         //rotate(90)
  814.         nrintframes(4);
  815.         move(BobMaxRunSpeedFwd,0,0);
  816.         //move(0,0,BobMaxRunSpeedFwd);
  817.         trigger(_DIRsideright);
  818.         break(on);
  819.         //offset(1);
  820.         offset(11);
  821.         soundlevel(100);
  822.         connections(BobSpreadOut,bobidle);
  823. }
  824.  
  825. Action(bobfastL)
  826. {
  827.         //file("pc\actors\bob\xxx\brunNoFr.ske",100,on,100);
  828.         file("pc\actors\bob\xxx\BNuRn4L.ske",100,on,100);
  829.         //rotate(-90)
  830.         nrintframes(4);
  831.         //move(0,0,BobMaxRunSpeedFwd);
  832.         move(BobNegMaxRunSpeedFwd,0,0);
  833.         trigger(_DIRsideleft);
  834.         break(on);
  835.         //offset(1);
  836.         offset(11);
  837.         soundlevel(100);
  838.         connections(BobSpreadOut,bobidle);
  839. }
  840.  
  841. Action(bobfastDiagFL)
  842. {
  843.         //file("pc\actors\bob\xxx\brunNoFr.ske",100,on,100);
  844.         file("pc\actors\bob\xxx\BNuRn4FL.ske",100,on,100);
  845.         //rotate(-45)
  846.         nrintframes(4);
  847.         move(BobDiagRunSpeed,0,BobNegDiagRunSpeed);
  848.         //move(0,0,BobMaxRunSpeedFwd);
  849.         trigger(_DIRsideleft|_DIRforward);
  850.         break(on);
  851.         //offset(1);
  852.         offset(11);
  853.         soundlevel(100);
  854.         connections(BobSpreadOut,bobidle);
  855. }
  856.  
  857. Action(bobfastDiagFR)
  858. {
  859.         //file("pc\actors\bob\xxx\brunNoFr.ske",100,on,100);
  860.         file("pc\actors\bob\xxx\BNuRn4FR.ske",100,on,100);
  861.         //rotate(45)
  862.         nrintframes(4);
  863.         //move(0,0,BobMaxRunSpeedFwd);
  864.         move(BobNegDiagRunSpeed,0,BobNegDiagRunSpeed);
  865.         trigger(_DIRsideright|_DIRforward);
  866.         break(on);
  867.         //offset(1);
  868.         offset(11);
  869.         soundlevel(100);
  870.         connections(BobSpreadOut,bobidle);
  871. }
  872.      
  873. Action(bobrunback)
  874. {
  875.         //file("pc\actors\bob\xxx\BRnBNoMv.ske",100,on,125);
  876.         file("pc\actors\bob\xxx\BNuRn4B.ske",100,on,125);
  877.         nrintframes(4);
  878.         break(on);
  879.         //offset(1);
  880.         offset(10);
  881.         trigger(_DIRbackward);
  882.         move(0,0,BobMaxRunSpeedBwd);
  883.         soundlevel(100);
  884.         connections(BobSpreadOut,bobidle);
  885. }
  886.  
  887. Action(bobfastDiagBL)
  888. {
  889. //        file("pc\actors\bob\xxx\BRnBNoMv.ske",100,on,125);
  890.         file("pc\actors\bob\xxx\BNuRn4BL.ske",100,on,125);
  891. //        rotate(45);
  892.         nrintframes(4);
  893.         //move(0,0,BobMaxRunSpeedBwd);
  894.         move(BobDiagRunSpeedBwd,0,BobDiagRunSpeedBwd);
  895.         trigger(_DIRsideleft|_DIRbackward);
  896.         break(on);
  897.         //offset(1);
  898.         offset(10);
  899.         soundlevel(100);
  900.         connections(BobSpreadOut,bobidle);
  901. }
  902.  
  903. Action(bobfastDiagBR)
  904. {
  905.         //file("pc\actors\bob\xxx\BRnBNoMv.ske",100,on,125);
  906.         file("pc\actors\bob\xxx\BNuRn4BR.ske",100,on,125);
  907.         //rotate(-45);
  908.         nrintframes(4);
  909.         //move(0,0,BobMaxRunSpeedBwd);
  910.         move(BobNegDiagRunSpeedBwd,0,BobDiagRunSpeedBwd);
  911.         trigger(_DIRsideright|_DIRbackward);
  912.         break(on);
  913.         //offset(1);
  914.         offset(10);
  915.         soundlevel(100);
  916.         connections(BobSpreadOut,bobidle);
  917. }
  918.  
  919. Action(bobwalk)
  920. {
  921.         file("pc\actors\Bob\xxx\Bwkcyc1p.xxx",100,on,150);
  922.         nrintframes(4);
  923.         break(on);
  924.         offset(1);
  925.         trigger(_DIRforward|_DIRwalking);
  926.         soundlevel(0);
  927.         connections(BobSpreadOut,bobidle);
  928. }
  929.  
  930. Action(bobslowR)
  931. {
  932.         file("pc\actors\Bob\xxx\Bwkcyc1p.xxx",100,on,150);
  933.         rotate(90);
  934.         nrintframes(4);
  935.         trigger(_DIRwalking|_DIRsideright);
  936.         break(on);
  937.         offset(1);
  938.         soundlevel(0);
  939.         connections(BobSpreadOut,bobidle);
  940. }
  941.  
  942. Action(bobslowL)
  943. {
  944.         file("pc\actors\Bob\xxx\Bwkcyc1p.xxx",100,on,150);
  945.         rotate(-90);
  946.         nrintframes(4);
  947.         trigger(_DIRwalking|_DIRsideleft);
  948.         break(on);
  949.         offset(1);
  950.         soundlevel(0);
  951.         connections(BobSpreadOut,bobidle);
  952. }
  953.  
  954. Action(bobslowDiagFL)
  955. {
  956.         file("pc\actors\Bob\xxx\Bwkcyc1p.xxx",100,on,150);
  957.         rotate(-45);
  958.         nrintframes(4);
  959.         trigger(_DIRsideleft|_DIRforward|_DIRwalking);
  960.         break(on);
  961.         offset(1);
  962.         soundlevel(0);
  963.         connections(BobSpreadOut,bobidle);
  964. }
  965. Action(bobslowDiagFR)
  966. {
  967.         file("pc\actors\Bob\xxx\Bwkcyc1p.xxx",100,on,150);
  968.         rotate(45);
  969.         nrintframes(4);
  970.         trigger(_DIRsideright|_DIRforward|_DIRwalking);
  971.         break(on);
  972.         offset(1);
  973.         soundlevel(0);
  974.         connections(BobSpreadOut,bobidle);
  975. }
  976.  
  977.  
  978. action(BobWalkBack)
  979. {
  980.         file("pc\actors\Bob\xxx\Bwkbkcyg.xxx",100,on,150);
  981.         trigger(_DIRwalking|_DIRbackward);
  982.         nrintframes(4);
  983.         break(on);
  984.         offset(1);
  985.         soundlevel(0);
  986.         connections(BobSpreadOut,bobidle);
  987. }
  988.  
  989. Action(bobslowDiagBL)
  990. {
  991.         file("pc\actors\Bob\xxx\Bwkbkcyg.xxx",100,on,150);
  992.         rotate(45);
  993.         nrintframes(4);
  994.         trigger(_DIRwalking|_DIRsideleft|_DIRbackward);
  995.         break(on);
  996.         offset(1);
  997.         soundlevel(0);
  998.         connections(BobSpreadOut,bobidle);
  999. }
  1000. Action(bobslowDiagBR)
  1001. {
  1002.         file("pc\actors\Bob\xxx\Bwkbkcyg.xxx",100,on,150);
  1003.         rotate(-45);
  1004.         nrintframes(4);
  1005.         trigger(_DIRwalking|_DIRsideright|_DIRbackward);
  1006.         break(on);
  1007.         offset(1);
  1008.         soundlevel(0);
  1009.         connections(BobSpreadOut,bobidle);
  1010. }
  1011.  
  1012. /* *************   Other moves ******************* */
  1013.  
  1014. action(BobBalanceSpreadOut)    //Lead directly to next animation
  1015. {
  1016.         trigger(_DIRMove);
  1017.         nrintframes(-1);
  1018.         connections(BobBalanceSideR,BobBalanceSideL,BobBalanceBack,BobBalanceWalk);
  1019. }
  1020.  
  1021. Action(BobBalanceIdle)
  1022. {
  1023.         file("pc\actors\Bob\xxx\bobnidl1.ske",100,on);
  1024.         trigger(_allDIR);
  1025.         nrintframes(5);
  1026.         intforloop(on);
  1027.         break(on);
  1028.         connections(BobBalanceSpreadOut,BobBalanceTurnLeft,BobBalanceTurnRight,BobBalanceIdle);
  1029. }
  1030.  
  1031. Action(BobBalanceTurnLeft)
  1032. {
  1033.         file("pc\actors\Bob\xxx\btrnlft.ske",100,on);
  1034.         trigger(_DIRleft);
  1035.         break(on);
  1036.         nrintframes(6);
  1037.         connections(BobBalanceSpreadOut,BobBalanceTurnLeft,BobBalanceTurnRight,BobBalanceIdle);
  1038. }
  1039.  
  1040. Action(BobBalanceTurnRight)
  1041. {
  1042.         file("pc\actors\Bob\xxx\Btrnrt.ske",100,on);
  1043.         trigger(_DIRright);
  1044.         break(on);
  1045.         nrintframes(6);
  1046.         connections(BobBalanceSpreadOut,BobBalanceTurnLeft,BobBalanceTurnRight,BobBalanceIdle);
  1047. }
  1048.  
  1049. Action(BobBalanceWalk)
  1050. {
  1051.         file("pc\actors\Bob\xxx\BWkBlnc.ske",100,on,100);
  1052.         nrintframes(4);
  1053.         break(on);
  1054.         offset(1);
  1055.         trigger(_DIRforward);
  1056.         soundlevel(100);
  1057.         connections(BobBalanceSpreadOut,BobBalanceIdle);
  1058. }
  1059.  
  1060. action(BobBalanceBack)
  1061. {
  1062.         file("pc\actors\Bob\xxx\Bwkbkcyg.xxx",100,on,100);
  1063.         trigger(_DIRbackward);
  1064.         nrintframes(4);
  1065.         break(on);
  1066.         offset(1);
  1067.         connections(BobBalanceSpreadOut,BobBalanceIdle);
  1068. }
  1069.  
  1070. Action(BobBalanceSideR)
  1071. {
  1072.         file("pc\actors\Bob\xxx\Bwkcyc1p.xxx",100,on,100);
  1073.         rotate(90);
  1074.         nrintframes(4);
  1075.         trigger(_DIRsideright);
  1076.         break(on);
  1077.         offset(1);
  1078.         connections(BobBalanceSpreadOut,BobBalanceIdle);
  1079. }
  1080.  
  1081. Action(BobBalanceSideL)
  1082. {
  1083.         file("pc\actors\Bob\xxx\Bwkcyc1p.xxx",100,on,100);
  1084.         rotate(-90);
  1085.         nrintframes(4);
  1086.         trigger(_DIRsideleft);
  1087.         break(on);
  1088.         offset(1);
  1089.         connections(BobBalanceSpreadOut,BobBalanceIdle);
  1090. }
  1091.  
  1092.  
  1093. /* *************   Other moves ******************* */
  1094.  
  1095. action(BobDragLift)        //Start grabbing a character
  1096. {
  1097.         file("pc\actors\Bob\xxx\BDragA.ske",100,off);
  1098.         trigger(_DIRbackward);
  1099.         nrintframes(1);
  1100.         connections(BobDragIdle);
  1101. }
  1102.  
  1103. action(BobDragIdle)
  1104. {
  1105.         file("pc\actors\Bob\xxx\BDrgHold.ske",100,on);
  1106.         trigger(_allDIR);
  1107.         nrintframes(1);
  1108.         break(on);
  1109.         connections(BobDrag,BobDragIdle);
  1110. }
  1111.  
  1112. action(BobDrag)
  1113. {
  1114.         file("pc\actors\Bob\xxx\BDragB.ske",100,on);
  1115.         trigger(_DIRbackward);
  1116.         nrintframes(1);
  1117.         break(on);
  1118.         connections(BobDrag,BobDragIdle);
  1119. }
  1120.  
  1121.  
  1122. action(Bobjump)
  1123. {
  1124.  
  1125.         file("pc\actors\Bob\xxx\testflap.xxx",100,on);
  1126.  
  1127.         trigger(_DIRjump);
  1128.         AIClass(_AIClassBobSkeleton);
  1129.         nrintframes(4);
  1130.         intforloop(on);
  1131.         break(off);
  1132.         gravity(off);
  1133.         ydeltafromzeroframe(off);    //XXX
  1134.         connections(BobJump);
  1135. }
  1136.  
  1137. SubRoutine(,Sub_MoveDwarfUp)
  1138. {
  1139.         if(VFrame<3)
  1140.         {
  1141.             move(0,60,0);
  1142.         }
  1143. }
  1144.  
  1145. action(BobJumpWithGravity)
  1146. {
  1147.         file("pc\actors\ChotDwarf\xxx\DcJmpA.ske",100,off,100,_AIClassChot,-1,Sub_MoveDwarfUp);
  1148.         file("pc\actors\ChotDwarf\xxx\DcJmpB.ske",100,off,100,_AIClassChot,-1,Sub_MoveDwarfUp);
  1149.         file("pc\actors\ChotDwarf\xxx\DcJmpC.ske",100,off,100,_AIClassChot,-1,Sub_MoveDwarfUp);
  1150.         file("pc\actors\ChotDwarf\xxx\DcJmpD.ske",100,on,100,_AIClassChot,-1,Sub_MoveDwarfUp);
  1151.         file("pc\actors\Bob\xxx\testflap.xxx",100,on);
  1152. //        file("pc\actors\Bob\xxx\BJmpFlex.ske",100,off);
  1153.         trigger(_DIRjump);
  1154.         AIClass(_AIClassBobSkeleton);
  1155.         nrintframes(4);
  1156.         intforloop(on);
  1157.         break(off);
  1158.         gravity(on);
  1159.         ydeltafromzeroframe(off);    //XXX
  1160.         connections(BobFall);
  1161. }
  1162.  
  1163. action(BobFlyDead)
  1164. {
  1165.         //Bob gets hit, turns upside down (like a shot bird), and starts to fall..
  1166.         file("pc\actors\Bob\xxx\BShtDed1.ske",100,off);
  1167.         trigger(_allDIR);
  1168.         nrintframes(4);
  1169.         break(off);
  1170.         gravity(off);
  1171.         ydeltafromzeroframe(off);
  1172.         connections(BobFlyDeadFall);
  1173. }
  1174.  
  1175. action(BobFlyDeadFall)
  1176. {
  1177.         //Bob falls
  1178.         file("pc\actors\Bob\xxx\BShtDed2.ske",100,on);
  1179.         trigger(_allDIR);
  1180.         break(off);
  1181.         gravity(on);
  1182.         ydeltafromzeroframe(off);
  1183.         connections(BobFlyDeadFall);
  1184. }
  1185.  
  1186. action(BobFlyDeadLand)
  1187. {
  1188.         file("pc\actors\Bob\xxx\BShtDed3.ske",100,off);
  1189.         trigger(_allDIR);
  1190.         break(off);
  1191.         gravity(on);
  1192. //        ydeltafromzeroframe(off);
  1193.         connections(BobFlyDeadLand);
  1194. }
  1195.  
  1196.  
  1197. action(bobGlide)
  1198. {
  1199.         file("pc\actors\Bob\xxx\testgli2.xxx",100,on);
  1200.         trigger(_allDIR);
  1201.         nrintframes(4);
  1202.         gravity(off);
  1203.         break(on);
  1204.         ydeltafromzeroframe(off);
  1205.         connections(BobGlide);
  1206. }
  1207.  
  1208. action(BobFlap)
  1209. {
  1210.         //file("pc\actors\Bob\xxx\testflp2.ske",100,on);
  1211.         //file("pc\actors\Bob\xxx\testflap.xxx",100,on);
  1212.         file("pc\actors\Bob\xxx\bflap5g.ske",100,on);
  1213.  
  1214.         nrintframes(4);
  1215.         trigger(_DIRjump);
  1216.         gravity(off);
  1217.         ydeltafromzeroframe(off);
  1218.         connections(BobFlap);
  1219.         break(on);
  1220. }
  1221.  
  1222.  
  1223. action(Bobfall)
  1224. {
  1225.         file("pc\actors\Bob\xxx\bflylnd5.ske",100,on);
  1226.         trigger(_AllDir);
  1227.         AIClass(_AIClassBobSkeleton);
  1228.         nrintframes(4);
  1229.         intforloop(on);
  1230.         gravity(on);
  1231.         ydeltafromzeroframe(off);
  1232.         break(on);
  1233.         connections(BobFall);
  1234. }
  1235.  
  1236. action(BobSlide)
  1237. {
  1238.         file("pc\actors\Bob\xxx\BSlide1.ske",100,on);
  1239.         trigger(_allDIR);
  1240.         AIClass(_AIClassBobSkeleton);
  1241.         nrintframes(4);
  1242.         intforloop(on);
  1243.         gravity(on);
  1244.         ydeltafromzeroframe(off);
  1245.         break(on);
  1246.         connections(BobSlide);
  1247. }
  1248.  
  1249.  
  1250. action(BobFlyBackFlip)
  1251. {
  1252.         file("pc\actors\Bob\xxx\bflyflp2.ske",100,on,150);
  1253.         trigger(_AllDIR);
  1254.         nrintframes(3);
  1255.         gravity(off);
  1256.         ydeltafromzeroframe(off);
  1257.         connections(BobIdle);
  1258.         break(on);
  1259. }
  1260.  
  1261. action(BobFlySmackWall)
  1262. {
  1263.         file("pc\actors\Bob\xxx\BWlSmack.ske",100,off,130);
  1264.         trigger(_AllDIR);
  1265.         nrintframes(3);
  1266.         break(off);
  1267.         gravity(off);
  1268.         ydeltafromzeroframe(off);
  1269.         connections(BobFlyFromSmackWall);
  1270. }
  1271.  
  1272. action(BobFlySmackWallHold)
  1273. {
  1274.         file("pc\actors\Bob\xxx\BWlSmStl.ske",100,on,130);
  1275.         trigger(_AllDIR);
  1276.         nrintframes(3);
  1277.         gravity(off);
  1278.         ydeltafromzeroframe(off);
  1279.         connections(BobFlySmackWallHold);
  1280. }
  1281.  
  1282. action(BobFlyFromSmackWall)
  1283. {
  1284.         file("pc\actors\Bob\xxx\BWSmckRt.ske",100,off,130);
  1285.         trigger(_AllDIR);
  1286.         nrintframes(3);
  1287.         gravity(off);
  1288.         break(off);
  1289.         ydeltafromzeroframe(off);
  1290.         connections(BobFlap,Bobfall);
  1291. }
  1292.  
  1293. action(BobDeposses)
  1294. {
  1295.         file("pc\actors\Bob\xxx\bflyflp2.ske",100,on,150);
  1296.         trigger(_AllDIR);
  1297.         nrintframes(3);
  1298.         gravity(on);
  1299.         ydeltafromzeroframe(off);
  1300.         connections(BobDeposses);
  1301.         break(on);
  1302. }
  1303.  
  1304.  
  1305. action(BobDepossesDaze)
  1306. {
  1307.         file("pc\actors\Bob\xxx\BDeposs1.ske",100,off);
  1308.         trigger(_AllDIR);
  1309.         AIClass(_AIClassBobSkeleton);
  1310.         nrintframes(3);
  1311.         gravity(on);
  1312.         break(on);
  1313.         connections(BobSpreadOut,bobidle);
  1314. }
  1315.  
  1316. action(BobTouchDown)
  1317. {
  1318.         file("pc\actors\bob\xxx\Brnend2p.xxx",100,off);
  1319.         trigger(_DIRNotEndOfAnim);
  1320.         AIClass(_AIClassBobSkeleton);
  1321.         nrintframes(5);
  1322.         break(on);
  1323.         nomove(true);
  1324.         //connections(BobSpreadOut,bobidle);
  1325.         connections(DwarfClawAttack,bobshoot,BobSpreadOut,bobtouchdown,bobidle);
  1326. }
  1327.  
  1328. action(BobRunUpStairs)
  1329. {
  1330.         //file("pc\actors\bob\xxx\brnstair.ske",100,on);
  1331.         file("pc\actors\bob\xxx\brnstar3.ske",100,on,125);
  1332.         trigger(_DIRforward);
  1333.         AIClass(_AIClassBobSkeleton);
  1334.         offset(1);
  1335.         nrintframes(0);    //MISSING: Doesnt work with 4 (Rootbone interpolation bug again)
  1336.         gravity(off);
  1337.         ydeltafromzeroframe(off);
  1338.         connections(BobRunUpStairs);
  1339. }
  1340.  
  1341.  
  1342. Action(BobClimbUp)
  1343. {
  1344.         file("pc\actors\bob\xxx\BNClmb2a.ske",50,off);
  1345.         file("pc\actors\bob\xxx\BNClmb02.ske",100,off);
  1346.         //file("pc\actors\bob\xxx\bclmbeg3.ske",100,off);    //rolls through the floor right now
  1347.         trigger(_allDIR);
  1348.         AIClass(_AIClassBobSkeleton);
  1349.         nrintframes(4);
  1350.         gravity(off);
  1351.         ydeltafromzeroframe(off);    //Default=on
  1352.         connections(bobidle);
  1353. }
  1354.  
  1355. Action(BobClimbHang)
  1356. {
  1357.         file("pc\actors\bob\xxx\bhngidl3.ske",10,on);
  1358.         file("pc\actors\bob\xxx\bhngidl1.ske",60,on);
  1359.         file("pc\actors\bob\xxx\bhngidl2.ske",100,on);
  1360.         nrintframes(4);
  1361.         trigger(_allDIR);
  1362.         break(on);
  1363.         gravity(off);
  1364.         ydeltafromzeroframe(off);    //Default=on
  1365.         connections(BobShimmyLeft2,BobShimmyRight2,BobShimmyLeft,BobShimmyRight,BobClimbHang);
  1366. }
  1367.  
  1368. Action(BobShimmyLeft)
  1369. {
  1370.         file("pc\actors\bob\xxx\BShmyLft.ske",100,on);
  1371.         nrintframes(4);
  1372.         trigger(_DIRleft);
  1373.         break(on);
  1374.         gravity(off);
  1375.         ydeltafromzeroframe(off);
  1376.         connections(BobShimmyLeft2,BobShimmyRight2,BobShimmyLeft,BobShimmyRight,BobClimbHang);
  1377. }
  1378.  
  1379. Action(BobShimmyRight)
  1380. {
  1381.         file("pc\actors\bob\xxx\BShmyRgt.ske",100,on);
  1382.         nrintframes(4);
  1383.         trigger(_DIRright);
  1384.         break(on);
  1385.         gravity(off);
  1386.         ydeltafromzeroframe(off);
  1387.         connections(BobShimmyLeft2,BobShimmyRight2,BobShimmyRight,BobShimmyLeft,BobClimbHang);
  1388. }
  1389.  
  1390. Action(BobShimmyLeft2)
  1391. {
  1392.         file("pc\actors\bob\xxx\BShmyLft.ske",100,on);
  1393.         nrintframes(4);
  1394.         trigger(_DIRsideleft);
  1395.         break(on);
  1396.         gravity(off);
  1397.         ydeltafromzeroframe(off);
  1398.         connections(BobShimmyLeft2,BobShimmyRight2,BobShimmyLeft,BobShimmyRight,BobClimbHang);
  1399. }
  1400.  
  1401. Action(BobShimmyRight2)
  1402. {
  1403.         file("pc\actors\bob\xxx\BShmyRgt.ske",100,on);
  1404.         nrintframes(4);
  1405.         trigger(_DIRsideright);
  1406.         break(on);
  1407.         gravity(off);
  1408.         ydeltafromzeroframe(off);
  1409.         connections(BobShimmyLeft2,BobShimmyRight2,BobShimmyRight,BobShimmyLeft,BobClimbHang);
  1410. }
  1411.  
  1412. /* *************   Crouching moves ******************* */
  1413.  
  1414.  
  1415. action(BobCrouchDiagFL)
  1416. {
  1417.         file("pc\actors\Bob\xxx\BCrWkFL.ske",100,on);
  1418.         trigger(_DIRforward|_DIRsideleft);
  1419.         break(on);
  1420.         nrintframes(4);
  1421.         connections(BobCrouchSpreadOut,BobCrouchIdle);
  1422. }
  1423.  
  1424. action(BobCrouchL)
  1425. {
  1426.         file("pc\actors\Bob\xxx\BCrWkL.ske",100,on);
  1427.         trigger(_DIRsideleft);
  1428.         break(on);
  1429.         nrintframes(4);
  1430.         connections(BobCrouchSpreadOut,BobCrouchIdle);
  1431. }
  1432.  
  1433. action(BobCrouchDiagFR)
  1434. {
  1435.         file("pc\actors\Bob\xxx\BCrWkFR.ske",100,on);
  1436.         trigger(_DIRforward|_DIRsideright);
  1437.         break(on);
  1438.         nrintframes(4);
  1439.         connections(BobCrouchSpreadOut,BobCrouchIdle);
  1440. }
  1441.  
  1442. action(BobCrouchR)
  1443. {
  1444.         file("pc\actors\Bob\xxx\BCrWkR.ske",100,on);
  1445.         trigger(_DIRsideright);
  1446.         break(on);
  1447.         nrintframes(4);
  1448.         connections(BobCrouchSpreadOut,BobCrouchIdle);
  1449. }
  1450.  
  1451. action(BobCrouchDiagFR)
  1452. {
  1453.         file("pc\actors\Bob\xxx\BCrWkFR.ske",100,on);
  1454.         trigger(_DIRforward|_DIRsideright);
  1455.         break(on);
  1456.         nrintframes(4);
  1457.         connections(BobCrouchSpreadOut,BobCrouchIdle);
  1458. }
  1459.  
  1460. action(BobCrouchDiagBL)
  1461. {
  1462.         file("pc\actors\Bob\xxx\BCrWkBL.ske",100,on);
  1463.         trigger(_DIRbackward|_DIRsideleft);
  1464.         break(on);
  1465.         nrintframes(4);
  1466.         connections(BobCrouchSpreadOut,BobCrouchIdle);
  1467. }
  1468.  
  1469. action(BobCrouchDiagBR)
  1470. {
  1471.         file("pc\actors\Bob\xxx\BCrWkBR.ske",100,on);
  1472.         trigger(_DIRbackward|_DIRsideright);
  1473.         break(on);
  1474.         nrintframes(4);
  1475.         connections(BobCrouchSpreadOut,BobCrouchIdle);
  1476. }
  1477.  
  1478. action(BobCrouchSpreadOut)
  1479. {
  1480.         trigger(_DIRMove);
  1481.         nrintframes(-1);
  1482.         connections(BobCrouchForwardLeft,BobCrouchForwardRight,BobCrouchDiagFL,BobCrouchDiagFR,BobCrouchDiagBL,BobCrouchDiagBR,BobCrouchForward,BobCrouchBackward,BobCrouchL,BobCrouchR,BobCrouchTurnLeft,BobCrouchTurnRight);
  1483. }
  1484.  
  1485.     
  1486.  
  1487. action(BobCrouchDown)
  1488. {
  1489.         file("pc\actors\Bob\xxx\BSt2Crwl.ske",100,off);
  1490.         trigger(_allDIR);
  1491.         AIClass(_AIClassBobSkeleton);
  1492.         break(off);
  1493.         nrintframes(4);
  1494.         connections(BobCrouchIdle);
  1495. }
  1496.  
  1497. action(BobCrouchUp)
  1498. {
  1499.         file("pc\actors\Bob\xxx\BCrwl2St.ske",100,on);
  1500.         trigger(_allDIR);
  1501.         AIClass(_AIClassBobSkeleton);
  1502.         break(off);
  1503.         nrintframes(4);
  1504.         connections(BobSpreadOut,BobIdle);
  1505. }
  1506.  
  1507. action(BobCrouchTurnLeft)
  1508. {
  1509.         file("pc\actors\Bob\xxx\BCrStTLf.ske",100,on);
  1510.         trigger(_DIRleft);
  1511.         break(on);
  1512.         nrintframes(4);
  1513.         connections(BobCrouchSpreadOut,BobCrouchIdle);
  1514. }
  1515.  
  1516. action(BobCrouchTurnRight)
  1517. {
  1518.         file("pc\actors\Bob\xxx\BCrStTRg.ske",100,on);
  1519.         trigger(_DIRright);
  1520.         break(on);
  1521.         nrintframes(4);
  1522.         connections(BobCrouchSpreadOut,BobCrouchIdle);
  1523. }
  1524.  
  1525. action(BobCrouchForwardLeft)
  1526. {
  1527.         file("pc\actors\Bob\xxx\BCrFwLft.ske",100,on);
  1528.         trigger(_DIRforward|_DIRleft);
  1529.         break(on);
  1530.         nrintframes(4);
  1531.         connections(BobCrouchSpreadOut,BobCrouchIdle);
  1532. }
  1533.  
  1534. action(BobCrouchForwardRight)
  1535. {
  1536.         file("pc\actors\Bob\xxx\BCrFwRgt.ske",100,on);
  1537.         trigger(_DIRforward|_DIRright);
  1538.         break(on);
  1539.         nrintframes(4);
  1540.         connections(BobCrouchSpreadOut,BobCrouchIdle);
  1541. }
  1542.  
  1543. action(BobCrouchForward)
  1544. {
  1545.         file("pc\actors\Bob\xxx\BCrWkF.ske",100,on);
  1546.         trigger(_DIRforward);
  1547.         break(on);
  1548.         nrintframes(4);
  1549.         connections(BobCrouchSpreadOut,BobCrouchIdle);
  1550. }
  1551.  
  1552. action(BobCrouchBackward)
  1553. {
  1554.         file("pc\actors\Bob\xxx\BCrWkBw.ske",100,on);
  1555.         trigger(_DIRbackward);
  1556.         break(on);
  1557.         nrintframes(4);
  1558.         connections(BobCrouchSpreadOut,BobCrouchIdle);
  1559. }
  1560.  
  1561. action(BobCrouchIdle)
  1562. {
  1563.         file("pc\actors\Bob\xxx\BCrwIdle.ske",100,on);
  1564.         trigger(_allDIR);
  1565.         break(on);
  1566.         nrintframes(4);
  1567.         connections(BobCrouchSpreadOut,BobCrouchIdle);
  1568. }
  1569.  
  1570.  
  1571. // *******************************************************************8
  1572. // Hurt and dead
  1573.  
  1574. action(BobDead)
  1575. {
  1576.         //file("pc\actors\Bob\xxx\Bdeath2g.xxx",100,off);
  1577.         file("pc\actors\Bob\xxx\bdiebkwd.ske",25,off);
  1578.         file("pc\actors\Bob\xxx\bdieleft.ske",50,off);
  1579.         file("pc\actors\Bob\xxx\bdierght.ske",75,off);
  1580.         file("pc\actors\Bob\xxx\BDeath2.ske",100,off);
  1581.         trigger(_allDIR);
  1582.         nrintframes(4);
  1583.         break(off);
  1584.         //connections(BobDead);
  1585. }
  1586.  
  1587. action(BobCrush)
  1588. {
  1589.         //file("pc\actors\Bob\xxx\Bdeath2g.xxx",100,off);
  1590.         file("pc\actors\Bob\xxx\BDeath1.ske",100,off);
  1591.         collision(off);
  1592.         gravity(off);
  1593.         trigger(_allDIR);    
  1594.         nrintframes(4);
  1595.         break(off);
  1596. }
  1597.  
  1598. action(BobFallDead)
  1599. {
  1600.         //file("pc\actors\Bob\xxx\Bdeath2g.xxx",100,off);
  1601.         file("pc\actors\Bob\xxx\BDeath1.ske",100,off);
  1602.         trigger(_allDIR);    
  1603.         AIClass(_AIClassBobSkeleton);
  1604.         nrintframes(4);
  1605.         break(off);
  1606.         connections(BobFallDead);
  1607. }
  1608.  
  1609. action(BobFlapWoundLight)
  1610. {
  1611. //        file("pc\actors\Bob\xxx\BFlapSht1.ske",100,on);
  1612. //        //file("pc\actors\Bob\xxx\bwund2g.ske",100,off);
  1613.  
  1614.         file("pc\actors\Bob\xxx\BFlapSht1.ske",50,on);
  1615.         file("pc\actors\Bob\xxx\bwund2g.ske",100,off);
  1616.  
  1617.         trigger(_DIRNotEndOfAnim);
  1618.         break(on);
  1619.         gravity(off);
  1620.         ydeltafromzeroframe(off);
  1621.         connections(BobFlap);
  1622. }
  1623.  
  1624. action(BobWoundLight)
  1625. {
  1626. //        file("pc\actors\Bob\xxx\BShtStl2.ske",25,off);
  1627. //        file("pc\actors\Bob\xxx\BShtStl1.ske",100,off);
  1628. //        //file("pc\actors\Bob\xxx\bwund2g.ske",100,off);
  1629.  
  1630.         file("pc\actors\Bob\xxx\BShtStl2.ske",25,off);
  1631.         file("pc\actors\Bob\xxx\bwund2g.ske",66,off);
  1632.         file("pc\actors\Bob\xxx\BShtStl1.ske",100,off);
  1633.  
  1634.         trigger(_DIRNotEndOfAnim);
  1635.         AIClass(_AIClassBobSkeleton);
  1636.         break(on);
  1637.         collision(on);
  1638.         nrintframes(4);
  1639.         connections(BobSpreadOut,BobWoundLight,BobTurnLeft,BobTurnRight,BobIdle);
  1640. }
  1641.  
  1642. action(BobWoundLightRun)
  1643. {
  1644.         file("pc\actors\Bob\xxx\BNRnHrt1.ske",100,off);
  1645.         //trigger(_DIRNotEndOfAnim);
  1646.         trigger(_allDIR);
  1647.         AIClass(_AIClassBobSkeleton);
  1648.         nrintframes(4);
  1649.         break(off);
  1650.         move(0,0,BobMaxRunSpeedFwd);
  1651.         soundlevel(100);
  1652.         connections(BobSpreadOut,bobidle);
  1653. }
  1654.  
  1655. action(BobShieldExplosion)
  1656. {
  1657.         file("pc\actors\Bob\xxx\BRctExp1.ske",100,off);
  1658.         trigger(_allDIR);
  1659.         break(off);
  1660.         collision(on);
  1661.         nrintframes(4);
  1662.         connections(BobSpreadOut,BobIdle);
  1663.         //connections(BobSpreadOut,BobTurnLeft,BobTurnRight,BobIdle);
  1664. }
  1665.  
  1666.  
  1667.  
  1668. //***************   CHOT DWARF ANIMATIONS
  1669.  
  1670. SubRoutine(Sub_LaunchDwarf)
  1671. {
  1672.         if(VFrame==22)
  1673.         {
  1674.             vector(_settoactorpos,tmpvector);
  1675.             vector(_set,gactorpos,0,-50,0);
  1676.             vector(_add,tmpvector,gactorpos);
  1677.             callsub(sub_fxsmallexplosion);
  1678.  
  1679.             sample(SFXBooster,-1);
  1680.             call(ScreenShake,4,4,4,0.04);
  1681.  
  1682.             move(0,500,-800);
  1683.             State(_or,StateJump|StateThrown);
  1684.         }
  1685. }
  1686.  
  1687.  
  1688. action(DwarfLaunch)
  1689. {
  1690.         file("pc\actors\ChotDwarf\xxx\DcLnchSt.ske",100,off);
  1691.         trigger(_allDIR);
  1692.         AIClass(_AIClassBobSkeleton);
  1693.         break(off);
  1694.         collision(on);
  1695.         nrintframes(4);
  1696.         gravity(off);
  1697.  
  1698.         ActionSubRoutine(Sub_LaunchDwarf);
  1699.  
  1700.         connections(DwarfInAir);
  1701. }
  1702.  
  1703. action(DwarfInAir)
  1704. {
  1705.         file("pc\actors\ChotDwarf\xxx\DcLnchLp.ske",100,off);
  1706.         //file("pc\actors\ChotDwarf\xxx\DcLnchL2.ske",100,off);
  1707.         trigger(_allDIR);
  1708.         break(on);
  1709.         collision(on);
  1710.         nrintframes(4);
  1711.  
  1712.         move(0,0,-20);
  1713.  
  1714.         connections(DwarfTouchDown,DwarfHitWall,DwarfInAir);
  1715. }
  1716.  
  1717. action(DwarfTouchDown)
  1718. {
  1719.         file("pc\actors\ChotDwarf\xxx\DcLncLn1.ske",50,on);
  1720.         file("pc\actors\ChotDwarf\xxx\DcLncLn2.ske",100,on);
  1721.         trigger(_DIRhorcol);
  1722.         break(off);
  1723.         collision(on);
  1724.         nrintframes(4);
  1725.  
  1726.         ActionSubRoutine(Sub_GetUpClearThrown19);
  1727.  
  1728.         connections(BobIdle);
  1729. }
  1730.  
  1731. action(DwarfHitWall)
  1732. {
  1733.         file("pc\actors\Bob\xxx\BTrFwWal.ske",100,on);
  1734.         trigger(_DIRvercol);
  1735.         break(off);
  1736.         collision(on);
  1737.         nrintframes(4);
  1738.  
  1739.         ActionSubRoutine(Sub_ClrThrownFlag);
  1740.  
  1741.         connections(BobIdle);
  1742. }
  1743.  
  1744. Action(DwarfClawAttack)
  1745. {
  1746.         file("pc\actors\ChotDwarf\xxx\DcSlash.ske",100,on);
  1747.  
  1748.         AIClass(_AIClassChot|_AIClassMale);
  1749.  
  1750.         trigger(_DIRshoot);
  1751.         nrintframes(5);
  1752.         //nomove(true);
  1753.         intforloop(off);
  1754.         break(off);
  1755.         connections(bobidle);
  1756. }
  1757.  
  1758.  
  1759. ////////////////////////////////////
  1760. //////  E V I L    B O B   /////////
  1761. ////////////////////////////////////
  1762.  
  1763. action(EBobTapDance)
  1764. {
  1765.         file("pc\actors\Bob\xxx\bcel2.ske",100,off);
  1766.         trigger(_allDIR);
  1767.         break(off);
  1768.         nrintframes(12);
  1769.         connections(EBobHeelTap);
  1770. }
  1771.  
  1772. action(EBobHeelTap)
  1773. {
  1774.         file("pc\actors\Bob\xxx\bcel4g.ske",100,off);
  1775.         trigger(_allDIR);
  1776.         break(off);
  1777.         nrintframes(12);
  1778.         connections(BobIdle);
  1779. }
  1780.  
  1781.  
  1782. // *******************************************************************8
  1783. // Bob temp: Not used
  1784. /*
  1785. action(Bobposses)
  1786. {
  1787.         file("pc\actors\Bob\xxx\Bpossesa.xxx",100,off);
  1788.         trigger(_DIRjumpPossesion);
  1789.         nrintframes(5);
  1790.  
  1791.         gravity(off);
  1792.         connections(Bobpossesb);
  1793. }
  1794.  
  1795. action(Bobpossesb)
  1796. {
  1797.         file("pc\actors\Bob\xxx\Bpossesb.xxx",100,off);
  1798.         trigger(_allDIR);
  1799.         nrintframes(5);
  1800.         move(0,0,-3);
  1801.         connections(bobidle);
  1802. }
  1803.  
  1804. */
  1805.  
  1806.  
  1807.  
  1808.  
  1809.